package com.ticket.system.domain;

import io.swagger.annotations.ApiModel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ticket.common.annotation.Excel;
import com.ticket.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 场馆区域对象 yanchu_hall_area
 * 
 * @date 2023-09-26
 */
@ApiModel(description = "剧场区域对象")
public class YanchuHallArea extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 区域编号 */
    private Long id;

    /** 场馆编号 */
    @Excel(name = "场馆编号")
    @NotNull(message = "剧场编码不可以为空")
    private Long hallId;

    /** 区域名称 */
    @Excel(name = "区域名称")
    @NotBlank(message = "区域名称不可以为空")
    @Size(min = 1, max = 10, message = "区域名称长度不能超过10个字符")
    private String areaName;

    /** 排开始编号，如1排/A排，默认1排 */
    @Excel(name = "排开始编号，如1排/A排，默认1排")
    @NotNull(message = "开始排号不可以为空")
    private String rowStart;

    /** 总排数，默认10 */
    @Excel(name = "总排数，默认10")
    private Integer rowNums;

    /** 每排的座位数，默认18 */
    @Excel(name = "每排的座位数，默认18")
    private Integer seatNumsRow;

    /** 所有座位的状态，0表示可用，1表示禁用，2表示售出[{"row":1,"seats":"1,1,1"},{"row":2,"seats":"2"}] */
    @Excel(name = "所有座位的状态，0表示可用，1表示禁用，2表示售出[{\"row\":1,\"seats\":\"1,1,1\"},{\"row\":2,\"seats\":\"2\"}]")
    @NotBlank(message = "座位信息不可以为空")
    private String seatState;

    //座位号类型 0: 1 2 3 4 1:1 3 5 7 2:2 4 6 8
    @NotNull(message = "排号类型不可以为空")
    private Integer rowType;

    public Integer getRowType() {
        return rowType;
    }

    public void setRowType(Integer rowType) {
        this.rowType = rowType;
    }


    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setHallId(Long hallId) 
    {
        this.hallId = hallId;
    }

    public Long getHallId() 
    {
        return hallId;
    }
    public void setAreaName(String areaName) 
    {
        this.areaName = areaName;
    }

    public String getAreaName() 
    {
        return areaName;
    }
    public void setRowStart(String rowStart) 
    {
        this.rowStart = rowStart;
    }

    public String getRowStart() 
    {
        return rowStart;
    }
    public void setRowNums(Integer rowNums) 
    {
        this.rowNums = rowNums;
    }

    public Integer getRowNums() 
    {
        return rowNums;
    }
    public void setSeatNumsRow(Integer seatNumsRow) 
    {
        this.seatNumsRow = seatNumsRow;
    }

    public Integer getSeatNumsRow() 
    {
        return seatNumsRow;
    }
    public void setSeatState(String seatState) 
    {
        this.seatState = seatState;
    }

    public String getSeatState() 
    {
        return seatState;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("hallId", getHallId())
            .append("areaName", getAreaName())
            .append("rowStart", getRowStart())
            .append("rowNums", getRowNums())
            .append("seatNumsRow", getSeatNumsRow())
            .append("seatState", getSeatState())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
